package com.chenglu.android.goodsinfo.mvp.contract;



import com.chenglu.android.bean.SmsCodeBean;
import com.chenglu.android.cart.bean.CartBean;
import com.chenglu.android.common.base.BaseView;
import com.chenglu.android.goodsinfo.bean.GoodsCommentBean;
import com.chenglu.android.goodsinfo.bean.GoodsInfoBean;
import com.chenglu.android.goodsinfo.bean.ShopCouponPage;
import com.chenglu.android.goodsinfo.bean.ShopsinfoBean;
import com.chenglu.android.index.bean.IndexRecomBean;
import com.chenglu.android.mine.bean.AmountTypeBean;
import com.chenglu.android.mine.bean.CommonDataBean;
import com.chenglu.android.mine.bean.MoneyBean;
import com.chenglu.android.payment.bean.CouponListBean;

import java.util.Map;

import io.reactivex.rxjava3.core.Observable;
import okhttp3.RequestBody;

/**
 * @author: lyj
 * @Created by Copyright 2023/7/27 Guangzhou Hongma Technology Co., Ltd. All rights reserved.
 *
 */
public interface GoodsInfoContract {

    /**
     *
     * @description model
     *
     */

    public interface GoodsInfoModel{



        Observable<GoodsInfoBean> getGoodsInfo(Map<String,String> map);

        Observable<GoodsCommentBean> getGoodsComment(Map<String,String> map);

        Observable<ShopsinfoBean> getShopinfo(String tenantId);

        Observable<SmsCodeBean> getGoodsCollectRemove(String token, String goodsId);

        Observable<SmsCodeBean> getShopsCollectRemove(String token, String tenantId);

        Observable<SmsCodeBean> getGoodsCollectSave(String token, RequestBody requestBody);

        Observable<IndexRecomBean> getShopsRecommendList(String tenantId);

        Observable<CommonDataBean> getAddCartShop(String token,RequestBody requestBody);


        //购物车的数量
        Observable<CartBean> getShopsCart(String token, String shopsTypeId);



        Observable<ShopCouponPage> getShopCouponPage(String token, Map<String,String> map);


        Observable<CommonDataBean> getShopCouponreceive(String token,String id);







    }


    /**
     *
     * @description view
     *
     */

    interface View extends BaseView {
        @Override
        void showLoading();

        @Override
        void dismissLoading();

        @Override
        void onEmpty(Object tag);

        @Override
        void onError(String errMessage);


        void getGoodsInfo(GoodsInfoBean bean);

        void getGoodsComment(GoodsCommentBean bean);

        void getShopinfo(ShopsinfoBean bean);

        void getGoodsCollectRemove(SmsCodeBean bean);

        void getShopsCollectRemove(SmsCodeBean bean);

        void getGoodsCollectSave(SmsCodeBean bean);

        void getShopsRecommendList(IndexRecomBean bean);

        void getAddCartShop(CommonDataBean bean);

        void getShopsCart(CartBean bean);


        void getShopCouponPage(ShopCouponPage bean);

        void getShopCouponreceive(CommonDataBean bean);






    }

    /**
     *
     * @description presenter
     *
     */

    public interface GoodsInfoPresenter {

        void getGoodsInfo(Map<String,String> map);

        void getGoodsComment(Map<String,String> map);


        void getShopinfo(String tenantId);

        void getGoodsCollectRemove(String token, String goodsId);

        void getShopsCollectRemove(String token, String tenantId);

        void getGoodsCollectSave(String token, RequestBody requestBody);

        void getShopsRecommendList(String tenantId);

        void getAddCartShop(String token,RequestBody requestBody);

        void getShopsCart(String token,String shopsTypeId);

        void getShopCouponPage(String token,Map<String,String> map);


        void getShopCouponreceive(String token,String id);




    }
}